Update to Uno 6.x on WinUI; keep Uno 5.x on UWP#304
Update to Uno 6.x on WinUI; keep Uno 5.x on UWP#304MartinZikmund wants to merge 6 commits intoCommunityToolkit:mainfrom
Conversation
7339932 to
b01ef4f
Compare
There was a problem hiding this comment.
We still fully support UWP and dropping Uno 5.x would be a huge breaking change for UWP applications that still rely on the Toolkit, forcing them to upgrade directly to WASDK prematurely:
- Without a chance to follow the
uap/uwp -> netx.0/uwp -> netx.0/wasdkmigration path offered by the platform, - without a chance to iron out NativeAoT issues before using WinUI 3,
- and before the latest WASDK platform offering is on par with UWP for their scenario (e.g. startup performance, API usability).
We'll be supporting both Uno 5.x and Uno 6.x. Our recommendation to end users will be to switch at their own pace, since upgrading to Uno 6.x requires them to migrate their entire codebase to WinUI 3 / Wasdk.
|
@Arlodotexe unless I made a mistake, these changes only drop Uno.UI 5.x, but normally preserve UWP - or at least that was the goal 😂 . If this is not an option - would it be ok to have Uno 5.x for the UWP variant of toolkit and have Uno 6.x for WinUI variant? |
Absolutely, that was our intent here. We can support Uno 6.x under the WinUI 3 build config without taking away Uno 5.x under the WinUI 2 build config, our packages for these already ship separately too. |
|
@Arlodotexe Adjusted the changes based on what we discussed |
This pull request updates how Uno Platform package references are managed for projects targeting WinUI 2 and WinUI 3, improving clarity and compatibility. The changes introduce explicit versioning for both Uno.UI (WinUI 2) and Uno.WinUI (WinUI 3), and refactor conditional logic to ensure the correct packages are referenced based on the selected WinUI version and target platform. There are also updates to package versions and supported multitargets for WinUI 3.
Package management and conditional references:
MultiTarget/PackageReferences/Uno.propsto define separate variables for Uno.UI (WinUI 2) and Uno.WinUI (WinUI 3) versions, and updatedCommonUnoPackageVersionto select the correct version based on theWinUIMajorVersionproperty. Package references are now conditionally included for the appropriate Uno variant and target platform.Uno.props, ensuringUno.UI.WebAssemblyis used for WinUI 2 andUno.WinUI.WebAssemblyfor WinUI 3.Platform and multitarget support:
MultiTarget/Test-Component-Support.ps1to remove unsupported platforms (wpf,linuxgtk,macos). Now onlywasdk,wasm,ios, andandroidare supported for WinUI 3.Package version updates:
Uno.WinUI.Lottieto version6.4.229inApp.Head.Uno.WinUI.Dependencies.propsto match the Uno.WinUI version used elsewhere.Uno.UI.Adapter.Microsoft.Extensions.Loggingreference inApp.Head.Wasm.propsto use the$(CommonUnoPackageVersion)property, ensuring consistency with the selected Uno version.Minor cleanup:
App.Head.Uno.UI.Dependencies.propsand fixed a minor comment typo inApp.Head.Uno.props. [1] [2]